﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace MarkControle.Models
{
    public class TabelaMes
    {
        enum Mes { janeiro = 1, fevereiro = 2, marco = 3, abril = 4, maio = 5, junho = 6, julho = 7, agosto = 8, setembro = 9, outubro = 10, novembro = 11, dezembro = 12 };
        
        public int[,] numtarefacomprida = new int[13, 32];
        public int[,] numtarefadiada = new int[13, 32];
        public int[,] numtarefatrasada = new int[13, 32];
        public int[,] pendente = new int[13, 32];
       
        BancodeDados bank = new BancodeDados();
        List<tarefa> tarifs = new List<tarefa>();

        public List<tarefa> Tarifs
        {
            get { return tarifs; }
            set { tarifs = value; }
        }
        

        public TabelaMes(int ano1)
        {
            for(int m=1;m<=12;m++){
                for (int d = 1; d <= DateTime.DaysInMonth(ano1, m);d++)
                {

                    pendente[m, d] = 0;
                    numtarefacomprida[m, d] = 0;
                    numtarefadiada[m, d] = 0;
                    numtarefatrasada[m, d] = 0;
                }
            }
        }



        public void Atualiza(int mes,int ano)
        {
            DateTime datini = new DateTime(ano, mes, 1);
            DateTime datfim = new DateTime(ano, mes, DateTime.DaysInMonth(ano,mes));
            tarifs = bank.ObterTarefa(datini, datfim);
            for (int i = 1;i <= DateTime.DaysInMonth(ano, mes); i++)
            {
                pendente[mes, i] = 0;
                numtarefacomprida[mes, i] = 0;
                numtarefadiada[mes, i] = 0;
                numtarefatrasada[mes, i] = 0;
            }
            
            
            
            foreach (tarefa tarif in tarifs)
            {
                if (tarif.Status1 == 0)
                { pendente[tarif.Prazo.Month, tarif.Prazo.Day]++; }
                else if (tarif.Status1 == 1)
                { numtarefadiada[tarif.Prazo.Month, tarif.Prazo.Day]++; }
                else if (tarif.Status1 == 2)
                { numtarefatrasada[tarif.Prazo.Month, tarif.Prazo.Day]++; }
                else if (tarif.Status1 == 3)
                { numtarefacomprida[tarif.Prazo.Month, tarif.Prazo.Day]++; }             
            }

        }





    }
}